package com.wjf.userservice.service;

import com.wjf.userservice.entity.User;

public interface UserService {
    /**
     * 用户登录
     * @param username 用户名
     * @param password 密码
     * @return JWT token，登录失败返回null
     */
    String login(String username, String password);

    /**
     * 用户注册
     * @param user 用户信息
     * @return 注册成功返回true
     */
    boolean register(User user);

    /**
     * 获取当前登录用户信息
     * @return 当前用户对象
     */
    User getCurrentUser();

    /**
     * 用户注销
     * @param token JWT令牌
     * @return 是否注销成功
     */
    boolean logout(String token);

    /**
     * 更新用户信息
     * @param user 用户信息
     * @return 是否更新成功
     */
    boolean updateUserInfo(User user);

    /**
     * 修改密码
     * @param oldPassword 旧密码
     * @param newPassword 新密码
     * @return 是否修改成功
     */
    boolean changePassword(String oldPassword, String newPassword,String token);

    /**
     * 检查用户名是否可用
     * @param username 用户名
     * @return true表示可用
     */
    boolean checkUsernameAvailable(String username);

    /**
     * 检查是否有此权限
     * @param code
     * @return true表示可用
     */
    boolean checkPermission(String code);
}
